﻿/// <reference path="../References/jquery-1.4.1-vsdoc.js" />
/// <reference path="blueliger.core.js" />

blueliger.SelectViewPart = function( actor ){
    return this.Initialize(actor);
};
blueliger.SelectViewPart.prototype = {
    Actor : new blueliger.ISelectActor()
    , NowSelectedEvent: false
    , Initialize : function( actor ){
        this.Actor = actor;
        return this;
    }
    , Show: function(data) {
        /// <summary>データを指定して、データの内容を表示します。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        /// <param name="data">表示するデータを指定してください。</param>

        var id = "#" + this.Actor.Name;
        $(id + " select").remove();
        $(id).append('<select onchange="" size="1"></select>');

        var me = this;
        $(id + " select").click( function() {
            if (me.NowSelectedEvent == false) {
                me.NowSelectedEvent = true;
                var index = $(id + " select option:selected").val();
                if (me.Actor.Select != undefined) me.Actor.Select(index);
                me.NowSelectedEvent = false;
            } // end if
        });

        for (var i in data) {
            $(id + " select").append('<option value="' + i + '" >' + data[i] + '</option>');
        }
    }
    , Hide: function(){
        /// <summary>データの内容を非表示にします。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        var id = "#" + this.Actor.Name;
        $(id + " select").remove();
    }
    , Select: function(index) {
        /// <summary>データを選択します。このメソッドはフレームワークのインフラストラクチャをサポートします。独自のコードから実行しないでください。</summary>
        /// <param name="index">選択する項目の 0 から始まるインデックス番号を指定してください。</param>

        if (this.NowSelectedEvent == false) {
            var id = "#" + this.Actor.Name;
            $(id + " select").val(index);
        } // end if
    }
};
 // End Class

    
